package cn.zshprint.serein.controller;

import cn.zshprint.serein.exception.ServiceException;
import cn.zshprint.serein.pojo.ResultBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 异常控制器的建议
 *
 * @author zshprint
 * @date 2021/07/28
 */
@RestControllerAdvice
@Slf4j
public class ExceptionControllerAdvice {

    /**
     * 服务异常处理程序
     *
     * @param e e
     * @return {@link ResultBean<Throwable>}
     */
    @ExceptionHandler
    public ResultBean<Throwable> handlerServiceException(ServiceException e){
        //当控制器方法发生ServiceException类型异常时
        //统一由当前这个异常处理方法进行处理
        log.error("出现业务异常",e);
        return new ResultBean<>(e);
    }

    /**
     * 异常处理程序
     *
     * @param e e
     * @return {@link String}
     */
    @ExceptionHandler
    public String handlerException(Exception e){
        log.error("其它异常",e);
        return e.getMessage();

    }




}
